<?php
/**
 * Created by PhpStorm.
 * User: lenovo
 * Date: 2020/8/3
 * Time: 15:12
 */

require_once __DIR__ . './vendor/autoload.php';

use QL\QueryList;
use QL\Ext\Chrome;

/**获取列表数据
 * @param $ql
 * @param $page
 */
function getList($ql,$page){
    $page->goto('https://www.cnblogs.com/');
    // 这里故意设置一个很长的延长时间，让你可以看到chrome浏览器的启动
    sleep(3);
    //获取结果
    $html = $page->content();
    //用jquery选择器抽取结果
    $rules = array(
        'author'=>['article.post-item-body a.post-item-author','text'],
       # 'title'=>['article.post-item-body div.post-item-text a.post-item-title','text'],//跳转网址
      #  'url'=>['article.post-item-body div.post-item-text a.post-item-title','href'],//跳转网址
      #  'description'=>['article.post-item-body div.post-item-text p.post-item-summary','text'],//描述
    );
    $ql = QueryList::html($html);
    #列表结果
    $rt = $ql->rules($rules)->query()->getData();
    file_put_contents('json',json_encode($rt->all()));
    echo json_encode(   $rt );die;

}

$ql = QueryList::getInstance();
// 注册插件，默认注册的方法名为: chrome
$ql->use(Chrome::class);
// 或者自定义注册的方法名
$ql->use(Chrome::class,'chrome');

$text = $ql->chrome(function ($page,$browser)use($ql) {
    getList($ql,$page);
    //如果有需要，可以把$rt入库，以及做其他操作
    sleep(10);
    $browser->close();
    // 返回值一定要是页面的HTML内容
    # return $html;
},[
    'headless' => false, // 启动可视化Chrome浏览器,方便调试
    'devtools' => false, // 打开浏览器的开发者工具
])->find('h1')->text();